package listdemo;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Stack;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: XMQ
 * Date: 2022-06-05
 * Time: 14:26
 */
//List了解
public class TestDemo {
    public static void func2(ArrayList<Integer> list){
        //这个方法只能接收ArrayList
        list.add(1);
    }
    public static void func1(List<Integer> list){
        //这个方法可以接收List及其子类
        list.add(1);
    }
    public static void main(String[] args) {
        //父类引用引用子类对象  -->不能使用子类特有的方法
        List<Integer> list1 = new ArrayList<>();
        List<Integer> list2 = new LinkedList<>();
        List<Integer> list3 = new Stack<>();

        //子类引用引用子类对象  -->可以使用父类及子类的所有方法
        ArrayList<Integer> list11 = new ArrayList<>();
        LinkedList<Integer> list22 = new LinkedList<>();
        Stack<Integer> list33 = new Stack<>();

        func1(list1);
        func1(list2);
        func1(list3);
        func1(list11);

//        func2(list1);
//        func2(list2);
//        func2(list3);
//        func2(list11);
//        func2(list22);
//        func2(list33);

    }
}
